These are the questions that Mitchell and Moyle set out to answer in their 1967 paper (Mitchell and Moyle, Biochem. J. (1967) 105, 1147)
The experimental setup is as follows:
experimental setup
Here for convenience, rather than pH units, we use [H+] relative to the amount of O2 inserted. Therefore 1 unit on the y-axis of the plot below correspond to the same amount of extra H+ ions as the amount of O2 injected in the pulse.
We will run a bit of code in Rstudio which simulates the reading of the pH electrode. The simulation plots readings every second. At given moments we will pulse given amounts of O2-saturated medium. In fact, the simulated “pulse” consist of changing a value in a file from 0 to 1 unit of O2.
Here are some variables to declare:
h<-0
ocr<-0.3
p<-numeric()
oxfile<-"ox.txt"
leakfile<-"lk.txt"
couplfactor<-12
You can come back to them at the end of the exercise to figure out what they are.
We need to initialize the simulation by creating or modifying some files. To do so, go to the “terminal” (bottom left, tab next to the console). This terminal allows you to interact with files even while the simulation is running.
In the terminal, issue the following command echo "0">ox.txt. This will initialize the amount of oxygen in the system to 0. Also issue the following command echo "0.01">lk.txt. We will get later to what this value means.
Now back in the R Console (left tab). We need to initialize the plot by running the command below
plot(c(1,100),c(0,25), xlab = "Time [s]", ylab = "[H+]/O2")
Here is the simulation per se. It lasts 100 sec.
plot(c(1,100),c(0,25), xlab = "Time [s]", ylab = "[H+]/O2")
for(i in 1:1000){
ox<-read.table(oxfile)
lk<-read.table(leakfile)
h <- h + ocr * ox * couplfactor
ox <- ox*(1-ocr)
h <- h*(1-lk)
p[i]<-as.numeric(h)+rnorm(1,mean = 0, sd=0.05)
write.table(ox, oxfile, row.names = F, col.names = F)
if(round(i/10)==i/10){
points(((i-9):i)/10,p[(i-9):i])
Sys.sleep(1)
}
}
During the simulation, whenever you feel like it, go to the “Terminal” and issue the following command echo "1">ox.txt. This will change the amount of oxygen in the system from 0 to 1. Observe what happens in the simulation (if the simulation stops to update, click on any of the tabs File, Packages, Help or Viewer, then re-click on the “Plots” tab. The simulation should resume updating.
To inject 2 units of O2, simply issue the following command in the terminal echo "2">ox.txt
You can see that each pulse leads to a transient increase in [H+] in the medium.
Now you can ask yourself some questions:
Why does the [H+] return to its original levels (0) after a while?
The ATP synthase is in theory not to blame since there is no ADP nor Pi in the medium. While the IMM is quite impermeable to H+, there is nevertheless a constant leak that is proportional to the gradient in [H+ ].
What would have happened if, instead of O2, you had injected a given amount of ATP?
With ATP, the ATP synthase would start working in reverse, i.e. hydrolysing ATP to generate a H+ gradient. This would cause an increase in extramitochondrial [H+] proportional to the amount of ATP, which would eventually re-equilibrate due to the intrinsic leak of the IMM.
What would happen if K+ and valinomycin, a K+ ionophore (which allows K+ to permeate membranes) was added?
Indeed, K+ and Valinomycin would collapse the electrical component of the gradient, theoretically allowing more H+ to be pumped out. However, in these conditions, it is O2 availability that limits the drop in pH, not the hyperpolarisation of the membrane.
What would happen if you added ADP + Pi in the mix?
Indeed, the leak current that allows the membrane to re-equilibrate would increase since now protons can use the active ATP synthase to return to the mitochondrial matrix.
Controls are necessary to ensure that the results of your experiment cannot be interpreted in another way. For instance, the sharp rise in [H+] might not happen because of mitochondrial activity, but perhaps simply because the O2 saturated medium has a lower pH than the anoxic medium bathing the mitochondria!
What control could distinguish between the two interpretations (mitochondrial activity vs. pH difference)?
Now try to think of alternative interpretations the results above, and devise control experiment to infirm (or confirm?) them.
Because the Y-Axis in our plot is calibrated such that one unit of H+ is equivalent to one unit of O2, the amount of H+ is expelled by unit of O2 should be the reading on the y-axis before H+ started to leak back into the mitochondria. In other word, we need to find the intercept of the curve at the time of O2 injection.
To find the intercept, we can use a linear regression. However the slope of the leak is an exponential negative.
\([H^{+}]_{t} = [H^{+}]_{0}e^{-\lambda t}\)
We can convert an exponential negative to a linear one by taking its logarithm. To convince you of that, let’s plot the previous data with a logarithmic y-Axis. We use plotly for this plot, because plotly plots are fully zoomable, which will help you quantify your data
library(plotly)
## Loading required package: ggplot2
##
## Attaching package: 'plotly'
## The following object is masked from 'package:ggplot2':
##
## last_plot
## The following object is masked from 'package:stats':
##
## filter
## The following object is masked from 'package:graphics':
##
## layout
df<-list()
df$x<-1:1000/10
df$y<-p
df<-data.frame(df)
plot_ly(df, x=~x, y=~y) %>% layout(yaxis = list(type = "log"))
## No trace type specified:
## Based on info supplied, a 'scatter' trace seems appropriate.
## Read more about this trace type -> https://plotly.com/r/reference/#scatter
## No scatter mode specifed:
## Setting the mode to markers
## Read more about this attribute -> https://plotly.com/r/reference/#scatter-mode
Now the exponential decay of the H+ gradient appears linear on the log scale, meaning that we can use a linear regression on the log-transformed data.
20:40)oxtime<-8
linrange<-20:40
and convert them in units that make sense with the data (in the data, a point is taken every 0.1 second)
oxtime<-10*oxtime
linrange<-seq(10*linrange[1],10*max(linrange),1)
l<-log(p[linrange])
m<-linrange-oxtime
linreg<-lm(l ~ m)
(intercept<-exp(linreg$coefficients[1]))
## (Intercept)
## 12.57761
oxtime<-65
linrange<-80:100
oxtime<-10*oxtime
linrange<-seq(10*linrange[1],10*max(linrange),1)
l<-log(p[linrange])
m<-linrange-oxtime
linreg<-lm(l ~ m)
(intercept<-exp(linreg$coefficients[1]))
## (Intercept)
## 24.97149
You now know how much [H+] is translocated per unit of O2 consumed.
Time for some questions: Knowing the H+/O2 ratio, can you speculate which carbon source was given to the mitochondria in the milieu?
The ratio of ~12 H+ per O2 indicates that complex I is not in use. Therefore electrons must enter through complex II (Succinate dehydrogenase)
\(\beta\) -hydroxy-butyrate (BHB) dehydrogenase is a mitochondrial enzyme generating NADH from NAD+ and BHB. If BHB had been used as carbon source, what ratio would have been observed?
With BHB dehydrogenase generating NADH, all electrons enter via Complex I, thus 20 H+ are pumped per O2.
If the substrate had been pyruvate, what do you think the ratio would have been?
With pyruvate, electrons might enter either at Complex I or at Complex II, resulting in a ratio somewhere between 12 and 20. To be precise, since in theory, pyruvate dehydrogenase produces 1 NADH, and the Krebs cycle produces 3 NADH and 1 succinate, the ratio should be around \((4 \cdot 20 + 1 \cdot 12)/5 = 18.4\).
Uncouplers are a family of drugs that uncouple the burning of fuel by the mitochondria from the generation of ATP. In essence, upon uncoupler treatment, mitochondria continue to burn carbon (e.g. glucose) and O2 to generate CO2. However they fail to generate ATP from it.
One uncoupler, dinitrophenol was once hailed as a miracle weight loss drug. It turned out the risks outweighed the benefits by a large margin!
FCCP is an uncoupler.
What would happen if FCCP was added to our experimental setup?
We can simulate the effect of FCCP using our simulator before.
echo "1">ox.txt)echo "0.1">lk.txt.by issuing the command echo "0.1">lk.txt, you have changed a parameter that you had initialized before echo "0.01">lk.txt (see above).
What do you think this does in the simulation? What do you think FCCP does to the mitochondria?
FCCP is a protonophore, a ionophore that moves protons across membranes.
FCCP
Therefore, Chemiosmosis provides an explanation for the mode of action of uncoupling protonophores. By wasting the electrochemical gradient, protonophores do not inhibit the “fuel burning” part of respiration, but prevent the downstream generation of ATP, thus uncoupling both processes.
It is simply dissipated as heat.
This heat dissipation by uncoupling factors is actually put to good use by homeothermic organisms like us. Indeed, we possess patches of “brown adipose tissue” (BAT). Brown adipose cells are rich in fat deposits (L) and mitochondria (M, hence the brown color from Fe+++ in cytochromes). These mitochondria are uncoupled by the protein UCP1 (UnCoupling Protein 1, also called thermogenin). UCP1 is simply a proton channel. How it works is related to other mitochondrial solute carriers but the precise mechanism and structure is not known.
Interestingly, UCP1 is conserved in poikilothermic tetrapods (fishes and amphibians) but its function in these organisms is not known.
When exposed to cold, our bodies stimulate their BAT to break down fatty acid and generate heat.